package com.atguigu.common.minio;

import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration//因为是配置类，加入ioc容器加该注解
@EnableConfigurationProperties(MinioProperties.class)//告诉spring
//将minproperties类和配置文件里minio开头的配置项结合
public class MinioConfiguration {
//    自定义spring配置类，用来初始化和配置minio客户端
    @Autowired
    private MinioProperties properties;
    //将绑定好了的MinioProperties对象创建好

    //加bean说明这个方法会创建一个spring bean，执行完方法后minioClient对象
//    会被放进spring容器，其他类可以直接@Autowired注入使用
    @Bean
    public MinioClient minioClient(){
        return MinioClient.builder()//在spring容器里创建一个minioiClient的构建器
                .endpoint(properties.getEndPoint()) //设置minio服务的访问地址
                .credentials(properties.getUsername(),//设置minio的账号密码
                        properties.getPassword()).build();//build构建真正的minio对象

    }

}
